package com.neuqsoft.rd.citizen.thirdapp.sdk.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

/**
 * ----------------------------------------------
 * 向渠道APP推送订单
 * ----------------------------------------------
 *
 * @author baidh@neuqsoft.com
 * @create 2018-09-21 8:45
 * ----------------------------------------------
 */
@Data
@ToString(exclude = {"merchantReserve"})
public class NeuqNoticePushReq {

    @ApiModelProperty(value = "用户认证令牌", required = true, notes = "被扫时该值通过一码通解码接口获取，线上支付时传递用户的accessToken")
    private String authToken;

    @ApiModelProperty(value = "商户信息：部平台商户号", required = true)
    private String mchId;

    @ApiModelProperty(value = "商户信息：商户名称", required = true)
    private String mchName;

    @ApiModelProperty(value = "商户信息：商户编号，可传社会信用代码的MD5", required = true)
    private String appcode;

    @ApiModelProperty(value = "商户信息：分类(医院/药店/普通商户)", allowableValues = "HOSPITAL, STORE, NORMAL", required = true)
    private String industry;

    @ApiModelProperty(value = "订单信息：商家流水号", required = true)
    private String bizNo;

    @ApiModelProperty(value = "订单信息：订单标题", required = true)
    private String subject;

    @ApiModelProperty(value = "订单信息：订单明细，格式见文档附录", required = true) //orderDetail
    private String orderDetail;

    @ApiModelProperty(value = "订单信息：商品类型，见代码项", required = true)
    private String productType;

    @ApiModelProperty(value = "订单信息：支付产品", required = true)
    private String payType;

    @ApiModelProperty(value = "订单信息：业务场景编码", required = false)
    private String ywcode;

    @ApiModelProperty(value = "订单信息：订单总金额", required = true)
    private String totalAmount;

    @ApiModelProperty(value = "订单信息：支付成功的前台回调地址", required = true)
    private String sucRedirectUrl;

    @ApiModelProperty(value = "订单信息：订单创建时间", required = true)
    private String timeStart;

    @ApiModelProperty(value = "订单信息：订单失效时间", required = true)
    private String timeExpire;

    @ApiModelProperty(value = "终端信息：用户终端类型", required = true)
    private String terminalType;

    @ApiModelProperty(value = "终端信息：用户终端设备编码", required = true)
    private String terminalCode;

    @ApiModelProperty(value = "终端信息：地理位置信息：纬度", required = false)
    private String terminalPosx;

    @ApiModelProperty(value = "终端信息：地理位置信息：经度", required = false)
    private String terminalPosy;

}
